package com.chinackts.common.utils.menumanager;

import org.apache.commons.codec.binary.Base64;
import org.apache.commons.lang3.ArrayUtils;
import org.apache.commons.lang3.StringUtils;

import java.math.BigInteger;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;
import java.util.concurrent.CompletableFuture;

/**
 * @author Lianhong
 * @since 2021/12/1
 * 单一窗口采集响应数据解密
 */
public class InvtMenuManager {

    private static final short[] S_BOX =
            {
                    214, 145, 233, 254, 204, 225, 61, 183, 22, 182, 20, 194, 40, 251, 44, 5,
                    43, 103, 154, 118, 42, 190, 4, 195, 170, 68, 19, 38, 73, 134, 6, 153,
                    156, 66, 80, 244, 145, 239, 152, 122, 51, 84, 11, 67, 237, 207, 172, 98,
                    228, 179, 28, 169, 201, 8, 232, 149, 128, 223, 148, 250, 117, 143, 63, 166,
                    71, 7, 167, 252, 243, 115, 23, 186, 131, 89, 60, 25, 230, 133, 79, 168,
                    104, 107, 129, 178, 113, 100, 218, 139, 248, 235, 15, 75, 112, 86, 157, 53,
                    30, 36, 14, 94, 99, 88, 209, 162, 37, 34, 124, 59, 1, 33, 120, 135,
                    212, 0, 70, 87, 159, 211, 39, 82, 76, 54, 2, 231, 160, 196, 200, 158,
                    234, 191, 138, 210, 64, 199, 56, 181, 163, 247, 242, 206, 249, 97, 21, 161,
                    224, 174, 93, 164, 155, 52, 26, 85, 173, 147, 50, 48, 245, 140, 177, 227,
                    29, 246, 226, 46, 130, 102, 202, 96, 192, 41, 35, 171, 13, 83, 78, 111,
                    213, 219, 55, 69, 222, 253, 142, 47, 3, 255, 106, 114, 109, 108, 91, 81,
                    141, 27, 175, 146, 187, 221, 188, 127, 17, 217, 92, 65, 31, 16, 90, 216,
                    10, 193, 49, 136, 165, 205, 123, 189, 45, 116, 208, 18, 184, 229, 180, 176,
                    137, 105, 151, 74, 12, 150, 119, 126, 101, 185, 241, 9, 197, 110, 198, 132,
                    24, 240, 125, 236, 58, 220, 77, 32, 121, 238, 95, 62, 215, 203, 57, 73
            };

    private static final long[] CK =
            {
                    462357L, 472066609L, 943670861L, 1415275113L,
                    1886879365L, 2358483617L, 2830087869L, 3301692121L,
                    3773296373L, 4228057617L, 404694573L, 876298825L,
                    1347903077L, 1819507329L, 2291111581L, 2762715833L,
                    3234320085L, 3705924337L, 4177462797L, 337322537L,
                    808926789L, 1280531041L, 1752135293L, 2223739545L,
                    2695343797L, 3166948049L, 3638552301L, 4110090761L,
                    269950501L, 741554753L, 1213159005L, 1684763264
            };

    private static final long[] FK = {2746333894L, 1453994832L, 1736282519L, 2993693405L};

    private static int mode = 0;
    private static long[] sk = new long[32];
    private static boolean isPadding = true;

    public synchronized static String mudata_kxc(String data, String key) {
        if (StringUtils.isBlank(data)) return StringUtils.EMPTY;
        long[] keyArr = new long[key.length()];
        for (int i = 0; i < key.length(); i++) {
            keyArr[i] = key.charAt(i);
        }
        genSk(keyArr);
        long[] dataArrays = dataArrays(data);
        if (dataArrays == null) return StringUtils.EMPTY;

        byte[] dataBytes = new byte[dataArrays.length];
        for (int i = 0; i < dataArrays.length; i++) {
            dataBytes[i] = (byte) dataArrays[i];
        }
        return new String(dataBytes, StandardCharsets.UTF_8);
    }

    private static void genSk(long[] keyArr) {
        long[] a = new long[4];
        a[0] = leftShift(keyArr, 0);
        a[1] = leftShift(keyArr, 4);
        a[2] = leftShift(keyArr, 8);
        a[3] = leftShift(keyArr, 12);

        long[] b = new long[36];
        b[0] = a[0] ^ BigInteger.valueOf(FK[0]).intValue();
        b[1] = a[1] ^ BigInteger.valueOf(FK[1]).intValue();
        b[2] = a[2] ^ BigInteger.valueOf(FK[2]).intValue();
        b[3] = a[3] ^ BigInteger.valueOf(FK[3]).intValue();

        for (int i = 0; i < 32; i++) {
            long tmp = b[i + 1] ^ b[i + 2] ^ b[i + 3] ^ CK[i];

            long[] c = new long[4];
            long[] d = new long[4];

            c[0] = 255 & tmp >> 24;
            c[1] = 255 & tmp >> 16;
            c[2] = 255 & tmp >> 8;
            c[3] = 255 & tmp;

            d[0] = S_BOX[(int) (255 & c[0])];
            d[1] = S_BOX[(int) (255 & c[1])];
            d[2] = S_BOX[(int) (255 & c[2])];
            d[3] = S_BOX[(int) (255 & c[3])];

            int tmp0 = (int) (((255 & d[0]) << 24)
                    | ((255 & d[1]) << 16)
                    | ((255 & d[2]) << 8)
                    | (255 & d[3]));

            b[i + 4] = b[i] ^
                    (tmp0 ^ ((tmp0 << 13) | (tmp0 >> 32 - 13)) ^
                            ((tmp0 << 23) | (tmp0 >> 32 - 23)));
            sk[i] = b[i + 4];
        }
        ArrayUtils.reverse(sk);
    }

    private static long[] dataArrays(String data) {
        try {
            byte[] bytes = Base64.decodeBase64(data);
            long[] valueArray = new long[bytes.length];
            for (int i = 0; i < bytes.length; i++) {
                valueArray[i] = bytes[i];
            }
            long[] r = new long[0];
            for (int i = 0; i < valueArray.length; i += 16) {
                long[] a = new long[]{
                        valueArray[i],
                        valueArray[i + 1],
                        valueArray[i + 2],
                        valueArray[i + 3],
                        valueArray[i + 4],
                        valueArray[i + 5],
                        valueArray[i + 6],
                        valueArray[i + 7],
                        valueArray[i + 8],
                        valueArray[i + 9],
                        valueArray[i + 10],
                        valueArray[i + 11],
                        valueArray[i + 12],
                        valueArray[i + 13],
                        valueArray[i + 14],
                        valueArray[i + 15],
                };
                long[] tmpArr = genArrBySk(a);
                r = appendArray(r, tmpArr);
            }
            return handleByMode(r);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

    public static long[] appendArray(long[] original, long[] n) {
        long[] result = new long[original.length + n.length];
        System.arraycopy(original, 0, result, 0, original.length);
        int index = 0;
        for (int i = original.length; i < original.length + n.length; i++) {
            result[i] = n[index];
            index++;
        }
        return result;
    }

    private static long[] genArrBySk(long[] a) {
        long[] buf = new long[36];
        buf[0] = leftShift(a, 0);
        buf[1] = leftShift(a, 4);
        buf[2] = leftShift(a, 8);
        buf[3] = leftShift(a, 12);

        for (int i = 0; i < 32; i++) {
            long tmp = (buf[i + 1] ^ buf[i + 2] ^ buf[i + 3]) ^ sk[i];

            long[] b = new long[4];
            b[0] = (int) (255 & tmp >> 24);
            b[1] = (int) (255 & tmp >> 16);
            b[2] = (int) (255 & tmp >> 8);
            b[3] = (int) (255 & tmp);

            long[] c = new long[4];
            c[0] = S_BOX[(int) (255 & b[0])];
            c[1] = S_BOX[(int) (255 & b[1])];
            c[3] = S_BOX[(int) (255 & b[2])];
            c[2] = S_BOX[(int) (255 & b[3])];

            int tmp1 = BigInteger.valueOf(leftShift(c, 0)).intValue();
            buf[i + 4] = (buf[i] ^ tmp1 ^
                    ((tmp1 << 2) | (tmp1 >> 32 - 2)) ^
                    ((tmp1 << 10) | (tmp1 >> 32 - 10)) ^
                    ((tmp1 << 18) | (tmp1 >> 32 - 18))) ^
                    ((tmp1 << 24) | (tmp1 >> 32 - 24));
        }
        long[] result = new long[16];
        rightShift(buf[35], result, 0);
        rightShift(buf[34], result, 4);
        rightShift(buf[33], result, 8);
        rightShift(buf[32], result, 12);
        return result;
    }

    private static long[] handleByMode(long[] array) {
        if (mode == 1) {
            int tmp = 16 - array.length % 16;
            for (int i = 0; i < tmp; i++) {
                array[array.length + i] = tmp;
            }
        } else {
            array = Arrays.copyOf(array, (int) (array.length - array[array.length - 1]));
        }
        return array;
    }


    private static long leftShift(long[] keyArr, int index) {
        return (255 & keyArr[index]) << 24
                | (255 & keyArr[index + 1]) << 16
                | (255 & keyArr[index + 2]) << 8
                | 255 & keyArr[index + 3];
    }

    private static void rightShift(long val, long[] arr, int index) {
        arr[index] = 255 & val >> 24;
        arr[index + 1] = 255 & val >> 16;
        arr[index + 2] = 255 & val >> 8;
        arr[index + 3] = 255 & val;
    }


    public static void main(String[] args) throws InterruptedException {
        for (int i = 0; i < 1000; i++) {
            CompletableFuture.runAsync(() -> {
                //rdtime响应报文
//        String val = "XlD0/h2MwJFYkSMq91Ybp+ITpwy2CreMm6S84z3XtCCVo6v3fm/q5NLdlrHz8wF1";
                //列表无数据响应报文
                String val = "H7ApAUzlT7mYWASU0ympzXD1VU7BIUr+loIQiHXdg6j3lgDHD+9t8r52GvKvQTKRX4pnyfROfTR6vy2J+aQ9yQ==";
                //明细响应报文
//        String val = "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";
                System.out.println(InvtMenuManager.mudata_kxc(val, "JnMTlc5KsoZWfDBR"));
            });
        }
        Thread.sleep(10000000);
    }
}
